package reflection;

// 测试类什么时候会初始化
public class Test06 {
    static {
        System.out.println("Main类被加载");
    }

    public static void main(String[] args) throws ClassNotFoundException {

        // 1、主动引用
        Son son = new Son();
        System.out.println(son);

        // 2、反射也能产生主动引用
        Class<?> c1 = Class.forName("reflection.Son");
        System.out.println(c1);

        // 不会产生类引用的方法。1、调用类的静态变量
        System.out.println(Son.M);

        // 2、创建这个类的数组
        Son[] sons = new Son[10];
        System.out.println(sons);

    }
}

class Father {
    static int b = 2;

    static {
        System.out.println("父类被加载");
    }
}

class Son extends Father{

    static {
        System.out.println("子类被加载");
        m = 300;
    }

    static int m = 100;
    static final int M = 1;

}
